package com.excilys.formation.projet.ebanking.dao.api;

import java.util.List;

import org.joda.time.DateTime;

import com.excilys.formation.projet.ebanking.modele.Operation;

public interface IOperationDao {

	/**
	 * Récupère toutes les opérations d'un mois donné et qui ne sont pas de type
	 * "Carte".
	 * 
	 * @param idCompte identifiant du compte.
	 * @param date mois de traitement.
	 * @return les opérations dont le type n'est pas "Carte".
	 */
	public List<Operation> getOperationsNonCarte(int idCompte, DateTime date);

	/**
	 * Récupère toutes les opérations de type "Carte" d'un mois donné.
	 * 
	 * @param idCompte identifiant du compte.
	 * @param date mois de traitement.
	 * @return les opérations de type "Carte".
	 */
	public List<Operation> getOperationsCarte(int idCompte, DateTime date);

	/**
	 * Récupère la somme cumulée des valeurs des opérations de type "Carte" pour
	 * un mois donné.
	 * 
	 * @param idCompte identifiant du compte.
	 * @param date mois de traitement.
	 * @return la somme cumulée des valeurs des opérations de type "Carte"
	 */
	public double getSommeOperationsCarte(int idCompte, DateTime date);

	public void save(Operation operation);
}
